package uk.ac.sanger.das.dasregistry.springrest.sources.hibernate;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

import org.biodas.jdas.schema.lastmodified.LASTMODIFIED;
import org.biodas.jdas.schema.registry.capabilities.CAPABILITIES;
import org.biodas.jdas.schema.servers.SERVERS;
import org.biodas.jdas.schema.sources.SOURCES;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import uk.ac.sanger.das.dasregistry.springrest.sources.DasSourceNotRegisterableExcepton;
import uk.ac.sanger.das.dasregistry.springrest.sources.DasSourceManager;


/**
 * An account manager that uses Hibernate to find accounts.
 */
//@Repository
//@Transactional
public class HibernateSourcesManager implements DasSourceManager {

	private SessionFactory sessionFactory;

	/**
	 * Creates a new Hibernate account manager.
	 * @param sessionFactory the Hibernate session factory
	 */
	public HibernateSourcesManager(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}

	@Override
	public SOURCES getAllSources() {
		SOURCES sources=new SOURCES();
		return sources;
		//return sessionFactory.getCurrentSession().createQuery("from Account").list();
	}

	@Override
	public SOURCES add(SOURCES sources) throws DasSourceNotRegisterableExcepton {
		//  Auto-generated method stub
		return null;
	}

	@Override
	public void activate(String sourceUri) {
		//  Auto-generated method stub
		
	}

	@Override
	public void delete(String sourceUri) {
		//  Auto-generated method stub
		
	}

	@Override
	public SOURCES update(SOURCES source)
			throws DasSourceNotRegisterableExcepton {
		//  Auto-generated method stub
		return null;
	}

	@Override
	public LASTMODIFIED getLastModified() {
		//  Auto-generated method stub
		return null;
	}

	@Override
	public CAPABILITIES getKnownCapabilities() {
		//  Auto-generated method stub
		return null;
	}

	@Override
	public SERVERS getServers() {
		//  Auto-generated method stub
		return null;
	}

	
}